
import '../utils/device_key.dart';

/**数据*/
class TimeControllers{
  static bool isDebug=true;
  static Map<int, String> cmdStartTimeMap= {};
  /**开始查询数据*/
  static void startQueryData(String time,int cmd,int mode){
    if(isDebug){
      cmdStartTimeMap.clear();
      if(time.isNotEmpty){
        if(mode==0||mode==2){
          cmdStartTimeMap[cmd]=time;
        }
      }
    }

  }

  /**True 的话就时间在固件返回的时间之后，或者是查询全部的*/
  static void FilterErrorData(int cmd,List<Map> list){
    if(isDebug){
      String? queryTime= cmdStartTimeMap[cmd];
      if(queryTime!=null){
        list.removeWhere((value) {
          String deviceTime = value[DeviceKey.Date];
          int queryTimeStamp = convertToTimestamp(queryTime);
          int deviceTimeStamp = convertToTimestamp(deviceTime);
          return queryTimeStamp >= deviceTimeStamp;
        });
      }
    }

  }

  static int convertToTimestamp(String dateTimeString) {
    try {
      //"yyyy-MM-dd HH:mm:ss";
      // 解析日期和时间部分
      List<String> parts = dateTimeString.split(' ');
      List<String> dateParts = parts[0].split('-'); // 拆分出年月日
      List<String> timeParts = parts[1].split(':'); // 拆分出时分秒

      // 创建 DateTime 对象
      DateTime dateTime = DateTime(
        int.parse(dateParts[0]), // 年
        int.parse(dateParts[1]), // 月
        int.parse(dateParts[2]), // 日
        int.parse(timeParts[0]), // 时
        int.parse(timeParts[1]), // 分
        int.parse(timeParts[2]), // 秒
      );

      // 获取时间戳（以毫秒为单位）
      return dateTime.millisecondsSinceEpoch;
    } catch (e) {
      print('Error parsing date string: $e');

      return -1; // 返回-1表示出错
    }
  }
}